PHP设计模式—六大原则

一般认为遵从以下六大原则的代码是可扩展易维护高复用的代码:

1.单一职责原则

不要多管闲事。


2.开放封闭原则

对扩展开放,对修改封闭


3.里氏代换原则

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

引自大话设计模式一书 p41

"里氏代换原则是Barbara Liskov 女士 在1988 年发表的【ASD】,具体的数学定义比较复杂,你可以查相关资料,它的白话翻译就是一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它观察不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化,简单地说,子类型必须能够替换掉它们的父类型【ASD】" .

里氏代换原则(LSP):子类型必须能替换掉它们的父类型。【ASD】

"这好像是学继承时就要理解的概念,子类继承了父类,所以子类就可以以父类的身份出现。"

“是的,我问你个问题,如果在面向对象设计时,一个鸟类,一个是企鹅类,如果鸟是可以飞的,企业是不会飞,那么企业是鸟吗?企鹅可以继承鸟这个类吗?”

“企鹅是一种特殊的鸟,尽管不能飞,但它也是鸟,当然可以继承。”

“哈,你上当了,我说的是在面象对象设计时,那又意味什么那?子类拥有父类所有非private的行为和属性。鸟会飞,而企鹅不会飞,尽管在生物学分类上,企鹅是一种鸟,但在编程世界里,企鹅不能以父类--鸟的身份出现,因为前提说所有鸟都能飞,企鹅飞不了,所以,企鹅不能继承鸟类。”


4.接口隔离原则


5.依赖倒转原则


6.迪米特法则--最少知道原则


 这六大原则任何面向对象的语言都应该遵守,好的代码不一定是严格按照设计模式写的代码,如果你的代码符合这六大原则,那么你的代码就是好代码,所以这六大原则还是很重要的。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值